/*
 * Curva.h
 *
 *  Created on: 23/04/2013
 *      Author: gonzalo
 */

#ifndef CURVA_H_
#define CURVA_H_

#include <GL/glew.h>
#include <glm/glm.hpp>
#include <vector>

class Curva {
protected:
	std::vector<GLfloat> control_points;
	//std::vector<GLfloat> calculation_points;
	//GLfloat * control_points;
	GLfloat * calculation_points;
	GLuint cant_points_allocated;

	Curva();
	virtual ~Curva();
public:
	void set_control_points(glm::vec3 * points, GLuint n_points);
	void add_control_point(glm::vec3 point);
	void clear_control_points();
	virtual glm::vec3 get_point(GLfloat u) = 0;
};

#endif /* CURVA_H_ */
